﻿/*
** Anxiu Li, 2019, BSD (2)
*/

////////////////////////////////////////////////////////////////////////////////
#ifndef __TEXT_APP_H__
#define __TEXT_APP_H__
////////////////////////////////////////////////////////////////////////////////

#include "TextPart.h"
#include "ReplacePart.h"
#include "CfgPart.h"
#include "../window/CfgDialog.h"

////////////////////////////////////////////////////////////////////////////////
namespace CSL {
////////////////////////////////////////////////////////////////////////////////

// TextApp

class TextApp
{
public:
	TextApp();
	TextApp(const TextApp&) = delete;
	TextApp& operator=(const TextApp&) = delete;
	~TextApp() noexcept;

//methods
	bool Init();
	int Run();

private:
	std::function<bool()> get_ReplaceCommand();
	std::function<void()> get_CloseReplaceCommand();
	std::function<void()> get_ConfigCommand();

private:
	CfgPart   m_cfgPart;
	TextPart  m_textPart;
	std::unique_ptr<ReplacePart>  m_upReplacePart;

	uintptr_t m_uBackColorCookie;
};

////////////////////////////////////////////////////////////////////////////////
}
////////////////////////////////////////////////////////////////////////////////
#endif
////////////////////////////////////////////////////////////////////////////////
